1. Field of the Invention
This invention is related to computer linkage editor programs and particularly to object module library search processing.
2. Description of the Related Art
Computer linkage editors are well known in the art. Basically, a computer linkage editor is a computer program for creating load modules from one or more object modules by resolving cross references among the modules and, if necessary, adjusting addresses. See, for example, the IBM publication VSE/Central Functions, Linkage Editor, Diagnostic Reference, IBM publication number LY33-9169, incorporated herein by reference, and a related IBM publication System Control Statements, IBM publication number SC33-6613, incorporated herein by reference.
An input stream to a linkage editor may contain one or more control statements known as include statements. Each include statement directs the linkage editor preprocessor to replace the statement with the contents of a specified object module. Normally, object modules referenced by include statements are contained in the input stream or reside in libraries contained in specified subdirectories. An include statement may explicitly specify the library containing an object module by specifying a drive and path location. Otherwise, object module libraries are specified by control statements that are known as library definition statements. A library definition statement is a control statement for specifying which program library or libraries to search for object modules specified in include statements. Library definition statements function in a manner similar to PATH statements in DOS and its derivatives to specify a search path for locating files (in this case, include files).
Conventionally, when linking object modules to form a load module, the library or libraries containing the object modules to be included must be resident on either a local drive or a connected network drive. Here a "connected network" means a local area network (LAN) or other network in which LAN server or other disk drives can be accessed as if they were locally connected to each client system on the LAN. In an OS/2.RTM., Windows.RTM., or DOS environment, the LAN server disk drives would be referred to by a drive letter such as W: or Z:. In a UNIX.RTM.-based system, access to remote files is accomplished via a network file system (NFS) and is limited to disk drives attached to systems comprising the LAN. In both the above cases, a linkage editor accesses the accessible disks as if they were locally attached.
As a result of this local access requirement for object module libraries, two sets of expenses are incurred. First, software producers pay media and distribution costs for the (sometimes rather substantial) amounts of data written on disks or CD-ROMs that are used for product distribution. Second, users have to allocate substantial amounts of space on their personal computers to store the object libraries distributed with compilers, linkage editors and product application program interfaces (APIs).
With the introduction of thin clients (cost-reduced computers having small amounts of memory and disk space that rely on a network to store most of their data), the ability to include remotely resident object modules becomes imperative.
Another reason for the present invention is related to the practice of team software development. During development of software, programmers within a development team are conventionally given access to the same local area network (LAN) so that they can easily share their data. This practice is based on the paradigm ascribing most or all of the programmers in a team to a single company developing code.
With the widespread acceptance of Internet and the emergence of virtual enterprises, this static-team paradigm is being replaced with a dynamic, widely dispersed team of programmers, cooperating on a development project across vast distances, time zones, continents, etc., making it impossible to place all of the software developers on a single LAN. It is often necessary for a team of programmers to be able to access the same set of object libraries, but which, because of the distances involved, cannot be made available on any single LAN as a single instance.
A number of products (e.g., IBM TeamConnection) exist for software version management and group development; however, they either provide programmers with access to shared data within a LAN, or replicate data among LANs or single nodes. Some way to access source libraries via a direct Internet access is what is required.